The present invention generally relates to industrial control systems and in particular to providing a file system on an industrial controller and a system and methods for employing the file system.
Industrial controllers are special purpose computers used for controlling factory automation devices. Under the direction of a stored program, a processor of the industrial controller examines a series of inputs reflecting the status of a controlled process or device and changes outputs affecting control of the controlled process or device. Generally industrial controllers are constructed in modular fashion to accommodate different applications requiring different numbers and types of input/output (I/O) circuits as is determined by the particular device or process being controlled. The stored control program runs in real-time to provide outputs to the controlled process as electrical signals to outputs such as actuators and the like. The outputs are based on the logic of the control program and inputs received from sensors of the controlled process.
The industrial controller or programmed logic controller (PLC) executes a series of operations that are performed sequentially and repeatedly. In general, the series of operations includes an input scan, a program scan and an output scan. During the input scan the PLC examines the on or off state of the external inputs and saves these states temporarily in memory (e.g., a file). During the program scan the PLC scans the instruction of the program and uses the input status to determine if an output will be energized. The output results are then saved to memory (e.g., a file). During the output scan the controller will energize or de-energize the outputs based on the output results stored in memory to control the external devices.
A conventional language for programming the stored program is relay ladder logic. Each ladder logic program comprises one or more ladder logic statements, referred to as rungs or instructions. The ladder logic statements define relationships between an output variable and one or more input variables. Input variables are variables that correspond to signals at input terminals and output variables are variables that correspond to signals at output terminals. In relay ladder logic, the input and output signals may be represented graphically as contact symbols and coil symbols arranged in a series of rungs spanning a pair of vertical power rails. A typical ladder logic statement may indicate that a specific output variable is xe2x80x9conxe2x80x9d if and only if a first and a second input is xe2x80x9conxe2x80x9d. The ladder logic program not only manipulates single-bit input and output data representing the state of the sensing and operating devices, but also performs arithmetic operations, timing and counting functions and more complex processing operations.
A ladder program can be created by connecting a special input module to a PLC that includes a small keyboard and entering ladder logic statements directly into the memory of the PLC. Another method of creating a ladder logic program involves, utilizing a ladder logic program development/editor tool residing on a separate device, such as a personal computer. An operator or programmer of the personal computer draws a series of ladder logic graphs representing each rung or instruction directly on the computer display screen. Once the ladder logic program is complete, the PC software converts the graphs into the corresponding ladder logic commands. The ladder logic command are then transferred to the PLC and stored in the PLC memory.
A PLC and/or a personal computer device can store one or more ladder logic programs and versions. However, a user must manually upload and download ladder logic programs at a work station or personal computer running a developer/editor application program. The current program running on the industrial controller can only be selected and/or changed by the editor. Data backup, storage and trend data is invoked through an application program and stored on a RAM residing on the industrial controller. The size of the RAM is limited and can eventually overload. An operator must periodically upload the data to remove it from the industrial controller memory to avoid overloading. Additionally, a program may include different profiles (e.g., different recipes) and associated parameters regarding particular implementations of a process. Conventionally, these different profiles are stored in huge dimensional arrays within the application program utilizing the memory of the industrial controller.
The following presents a simplified summary of the invention in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is intended to neither identify key or critical elements of the invention nor delineate the scope of the invention. Its sole purpose is to present some concepts of the invention in a simplified form as a prelude to the more detailed description that is presented later.
The present invention provides a system and method for providing a file system on an industrial controller. The file system allows industrial control programs to implement many functions previously performed within the industrial control program and stored in the same memory as the industrial control program. An execution engine is adapted to interpret new instructions that invoke the services of the file system. An editor is also provided that allows a user to include instructions interpretable by the execution engine employing services of the file system. The execution engine, the file system and the running industrial control program (e.g., ladder logic program) provide the functionality for loading user defined routine files at run-time from any file location, such as a memory device residing on the industrial controller, on a local server or at a remote location. Additionally, recipe files can be loaded and unloaded at real-time. A recipe file is a profile and the associated parameters regarding a particular implementation of a process (e.g., different paint types, different cookie types). The recipe files can reside on a memory device residing on the industrial controller, on a local server or at a remote location.
The execution engine also interprets instructions in the running industrial control program for logging measured data and trend data to a file at a memory device residing on the industrial controller, on a local server or at a remote location automation using the file system services. The file system services can also be employed to retrieve the measured data and trend data. The file system services allow selection of a running program from a plurality of application programs residing on the industrial controller. The selection can be invoked by sending a communication command from a remote or local location. Additionally, one or more operating systems can be provided in one or more files and a particular operating system selected to execute on the industrial controller corresponding to the development of the running industrial control program. The operating system can be stored as a file along with the industrial control program or the user defined routines. Multiple versions of the operating system can be stored to provide a xe2x80x9cdual bootxe2x80x9d situation.
The following description and the annexed drawings set forth in detail certain illustrative aspects of the invention. These aspects are indicative, however, of but a few of the various ways in which the principles of the invention may be employed. Other advantages and novel features of the invention will become apparent from the following detailed description of the invention when considered in conjunction with the drawings.